bitkeeper revision 1.1190 (420d565aLSpnsj5do0f0daHT7JHvkA)
authoriap10@freefall.cl.cam.ac.uk <iap10@freefall.cl.cam.ac.uk>
Sat, 12 Feb 2005 01:05:30 +0000 (01:05 +0000)
committeriap10@freefall.cl.cam.ac.uk <iap10@freefall.cl.cam.ac.uk>
Sat, 12 Feb 2005 01:05:30 +0000 (01:05 +0000)
Subject: [PATCH] vmx-shadow-lock.patch

Fix an assertion failure due to not holding the shadow_lock()
Also remove a printk that makes debug=y too verbose.
Fix an assertion that required PERF_COUNTER
Signed-off-by: Arun Sharma <arun.sharma@intel.com>
Signed-off-by: ian@xensource.com
xen/arch/x86/shadow.c
xen/include/asm-x86/shadow.h

index 5c9d43e028f0ed1cf26d6d3d796fbf6e8f24810a..0611c837972ba0e558c30f33bd72b0719756ff45 100644 (file)
@@ -434,7 +434,9 @@ void unshadow_table(unsigned long gpfn, unsigned int type)
 void vmx_shadow_clear_state(struct domain *d)
 {
     SH_VVLOG("vmx_clear_shadow_state:");
+    shadow_lock(d);
     clear_shadow_state(d);
+    shadow_unlock(d);
 }
 #endif
 
@@ -887,8 +889,7 @@ void check_pagetable(struct domain *d, pagetable_t pt, char *s)
   
     if ( ! (ss & PSH_shadowed) )
     {
-        printk("%s-PT %p not shadowed\n", s, gptbase);
-
+        /*printk("%s-PT %p not shadowed\n", s, gptbase);*/
         if ( ss != 0 )
             BUG();
         return;
index 073189c16acfc1425ac030da8365bdc146a7c6ca..ff90c2dccf2ee0f68f816df11825736f749b0919 100644 (file)
@@ -384,12 +384,14 @@ static void shadow_audit(struct domain *d, int print)
         printk("Xlive=%d free=%d\n",live,free);
 
     abs = (perfc_value(shadow_l1_pages) + perfc_value(shadow_l2_pages)) - live;
+#ifdef PERF_COUNTERS
     if ( (abs < -1) || (abs > 1) )
     {
         printk("live=%d free=%d l1=%d l2=%d\n",live,free,
                perfc_value(shadow_l1_pages), perfc_value(shadow_l2_pages) );
         BUG();
     }
+#endif
 }
 #else
 #define shadow_audit(p, print) ((void)0)